import 'package:flutter/material.dart';

// 在Dart2里面这些new是可以省略
class ImageDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('图片控件'),
      ),
      body: ListView(
        children: <Widget>[
          // width                         图片的宽
          // height                        图片高度
          // color                         图片的混合色值
          // colorBlendMode                混合模式
          // fit                           缩放模式
          // alignment : Alignment.center  对齐方式
          // repeat : ImageRepeat.noRepeat 重复方式

          // color和 colorBlendMode：在图片绘制时可以对每一个像素进行颜色混合处理，
          // color指定混合色，而colorBlendMode指定混合模式

          // repeat：当图片本身大小小于显示空间时，指定图片的重复规则

          // fit：该属性用于在图片的显示空间和图片本身大小不同时指定图片的适应模式。
          //      适应模式是在BoxFit中定义，它是一个枚举类型，有如下值：
          //        fill：会拉伸填充满显示空间，图片本身长宽比会发生变化，图片会变形。
          //        cover：会按图片的长宽比放大后居中填满显示空间，图片不会变形，超出显示空间部分会被剪裁。
          //        contain：这是图片的默认适应规则，图片会在保证图片本身长宽比不变的情况下缩放以适应当前显示空间，
          //                 图片不会变形。
          //        fitWidth：图片的宽度会缩放到显示空间的宽度，高度会按比例缩放，然后居中显示，图片不会变形，
          //                  超出显示空间部分会被剪裁。
          //        fitHeight：图片的高度会缩放到显示空间的高度，宽度会按比例缩放，然后居中显示，图片不会变形，
          //                   超出显示空间部分会被剪裁。
          //        none：图片没有适应策略，会在显示空间内显示图片，如果图片比显示空间大，则显示空间只会显示图片中间部分
          Image.asset(
            'images/card01.png',
            fit: BoxFit.cover,
            filterQuality: FilterQuality.high,
          ),
          Image.network(
            'http://b.hiphotos.baidu.com/image/pic/item/0eb30f2442a7d9337119f7dba74bd11372f001e0.jpg',
            scale: 1.0,
            fit: BoxFit.cover,
          ),
          Image.network(
            'https://cdn.jsdelivr.net/gh/flutterchina/flutter-in-action@1.0/docs/imgs/image-20180829163427556.png',
            filterQuality: FilterQuality.high,
            fit: BoxFit.cover,
            color: Colors.blue,
            colorBlendMode: BlendMode.difference,
          ),
          Image(
            image: NetworkImage(
                'http://e.hiphotos.baidu.com/image/h%3D300/sign=a9e671b9a551f3dedcb2bf64a4eff0ec/4610b912c8fcc3cef70d70409845d688d53f20f7.jpg'),
            fit: BoxFit.cover,
          ),
          Image(
            image: AssetImage('images/card03.png'),
            width: 75.0,
            height: 100.0,
            fit: BoxFit.cover,
          )
        ],
      ),
    );
  }
}
